.TH scan_cescape 3
.SH NAME
scan_cescape \- parse C escaped string
.SH SYNTAX
.B #include <libowfat/textcode.h>

size_t \fBscan_cescape\fP(const char *\fIsrc\fR,char *\fIdest\fR,size_t* \fIdestlen\fR);

.SH DESCRIPTION
scan_cescape parses C escaped text from src into dest.
Parsing stops at the 0 terminator, invalid input characters or a double
quote that was not escaped.

C escape sequences like \\n and \\x0a and \\012 are translated into
their binary counterparts. The C99 escape sequences \\u and \\U are
supported and lead to UTF-8 sequences being output.

scan_cescape will then write the number of bytes in dest into *destlen,
and return the number of bytes decoded from src.

dest can be NULL. destlen can be NULL. dest can be src.

To make sure dest is large enough, either allocate strlen(src)+1 bytes
or call scan_cescape twice, the first time with dest == NULL (*destlen
will still be written).

.SH "RETURN VALUE"
scan_cescape returns the number of bytes successfully parsed
from src.

.SH EXAMPLES
scan_cescape("test\\n\");",buf,&i) -> return 7, i=5, buf="test\n".

.SH "SEE ALSO"
fmt_jsonescape(3), fmt_cescape(3), scan_ldapescape(3)
